/******************************************************************************* 
  Copyright (C), 1988-2020, zeno Tech. Co., Ltd.
  Description:  AIN模块内部头文件
  Function List:
            
*******************************************************************************/
              
#ifndef AUDIO_HI_AIN_H
#define AUDIO_HI_AIN_H

/*=============================================================================
                                 Includes                                  
==============================================================================*/

/*=============================================================================
                               Macro Definition
==============================================================================*/

/*=============================================================================
                        Local Structures and Typedef 
==============================================================================*/

/*=============================================================================
                             extern  Variables                                  
==============================================================================*/

/*=============================================================================
                             Function Definition                                  
==============================================================================*/ 

/*******************************************************************************
  Function:     AIN_CreateDev
  Description:  创建音频输入设备
  Input:        - AiDevId: 设备号
                - pstAioAttr: 音频输入属性
  Output:       无
  Return:       0: 操作成功
                -1: 操作失败
  Others:       无
*******************************************************************************/
HI_S32 AIN_CreateDev(AUDIO_DEV AiDevId, AIO_ATTR_S *pstAioAttr);

/*******************************************************************************
  Function:     AIN_CreateChn
  Description:  创建音频输入通道
  Input:        - AiDevId: 设备号
                - s32AiChnCnt: 设备通道号
  Output:       无
  Return:       0: 操作成功
                -1: 操作失败
  Others:       无
*******************************************************************************/
HI_S32 AIN_CreateChn(AUDIO_DEV AiDevId, AI_CHN s32AiChnCnt);

/*******************************************************************************
  Function:     AIN_SetVqeAttr
  Description:  设置AI 的声音质量增强功能相关属性
  Input:        - AiDevId: 设备号
                - s32AiChnCnt: 设备通道号
                - pAiVqeAttr: 音频输入声音质量增强配置结构体指针
  Output:       无
  Return:       0: 操作成功
                -1: 操作失败
  Others:       无
*******************************************************************************/
HI_S32 AIN_SetVqeAttr(AUDIO_DEV AiDevId, 
                        AI_CHN s32AiChnCnt, 
                    #if defined(AUDIO_HI3519)||defined(AUDIO_HI3519V101)||defined(AUDIO_HI3516CV300)||defined(AUDIO_HI3559AV100)||defined(AUDIO_HI3516CV500)||defined(AUDIO_HI3516EV200)||defined(AUDIO_HI3519AV100)
                        AI_TALKVQE_CONFIG_S *pAiVqeAttr
                    #else
                        AI_VQE_CONFIG_S *pAiVqeAttr
                    #endif
                    #ifndef HIMPP_V2_0
                        ,AI_HPF_ATTR_S *pAiHpfAttr
                    #endif  
                     );

/*******************************************************************************
  Function:     AIN_GetVqeAttr
  Description:  获取AI 的声音质量增强功能相关属性
  Input:        - AiDevId: 设备号
                - s32AiChnCnt: 设备通道号
  Output:       - pAiVqeAttr: 音频输入声音质量增强配置结构体指针
  Return:       0: 操作成功
                -1: 操作失败
  Others:       无
*******************************************************************************/
HI_S32 AIN_GetVqeAttr(AUDIO_DEV AiDevId, 
                        AI_CHN s32AiChnCnt,
                    #if defined(AUDIO_HI3519)||defined(AUDIO_HI3519V101)||defined(AUDIO_HI3516CV300)||defined(AUDIO_HI3559AV100)||defined(AUDIO_HI3516CV500)||defined(AUDIO_HI3516EV200)||defined(AUDIO_HI3519AV100)
                       AI_TALKVQE_CONFIG_S *pAiVqeAttr
                    #else
                       AI_VQE_CONFIG_S *pAiVqeAttr
                    #endif
                    );

/*******************************************************************************
  Function:     AIN_Destroy
  Description:  销毁音频输入
  Input:        - AiDevId: 设备号
                - s32AiChnCnt: 设备通道号
  Output:       无
  Return:       0: 操作成功
                -1: 操作失败
  Others:       无
*******************************************************************************/
HI_S32 AIN_Destroy(AUDIO_DEV AiDevId, AI_CHN s32AiChnCnt);


#endif  /* AUDIO_HI_AIN_H */
